因為工作性質的關係,不時會有朋友找我討論,如何把他們絕妙的好點子製作成可以賺錢的 App。
我生性不是喜歡潑人冷水的人,而且大部分的時候,其實這些點子都還不錯,有的想法非常有創意,有的很有商機,但是大部分的情況下,要想成為一個完整的產品,好像也都少了一點什麼。
如同兵法裡有「戰略」、「戰術」、與「戰技」三種層次的區分,要「開發行動應用」,一樣可以分成「商業模式」、「架構」與「技術」三個層次來討論。
一般程度的開發者,只要稍加學習就可以掌握基本的語法和開發工具,用現有的函式庫與工具製作出各式各樣的功能。這樣算是開發 app 的「戰技」,不斷精進下去,會對於開法的技巧更為熟練,並且能整合更多的第三方函式庫或其他資訊系統。
戰術層次,則可以對應到軟體開發的架構(software architecture)。好的架構,可以簡化維護的流程,降低再次開發類似軟體的成本,甚至製作成軟體框架,成為第三方的函式庫。這個層次,可以看做是透過「流程控管」,讓實作更有效率。
一個 app 解決了什麼問題、能不能讓人願意使用、是不是達到原本要開發的目的,則是屬於商業模式的部份,可以對應到兵法的「戰略」層次。這個層次的掌握其實是相當有難度的,必須要對消費者與市場有相當程度的了解,還要對技術的可行性有一定的認識,當然,最好還要有一些商業嗅覺。
雖然說是「商業」模式,但是其實不見得每個行動應用的開發都是以營利為目的,所以這個部分比較像是整個專案的策略目標是不是能夠達成。簡單的說,就是「為什麼」要開發這個行動應用?這個行動應用是不是有解決你的問題,或是達成你的目的?
會來找我討論的,有的是在自己的領域學有專精或耕耘多年,想把一些原本的應用拓展到行動領域;有的是心中長久以來一直有個想法,想透過行動平台來實現的;有的是突然想到什麼「好點子」,想趕快設法製作成 app,免得被人搶先的。
整體來說,跟第一種對象溝通是最容易的,因為他們通常都已經有相當明確的「商業模式」,缺少的只是技術支援,只要不是太複雜的內容,通常很快可以完成架構的設計與初期製作。
第二種情況,則是最費力的。因為「想法」跟「概念」往往是很抽象的,需要很多的時間溝通,才能夠逐漸具體化,而具體化的概念,常常也不見得有合理的商業模式。也由於出發點比較抽象,在製作的過程中,常常會出現「這不是我想要的」的狀況,以致整個流程必須從頭來過。由於筆者自己會切入行動應用這個領域,也是出自於相似的理由(只不過我是自己學會做而不是找人幫我做),所以遇到這樣的朋友,我通常會當作是做善事,慢慢跟他們討論。有時候討論到某個段落的時候,會發現他們需要的根本不是一個行動應用,而是其他的東西。(感覺起來,這比較像是在做心理諮商 XD)
第三種情形,是比較常需要扮演潑冷水的角色的時候。忘了是誰說過的:「當你想到一個好點子的時候,請假設世界上至少有另外兩個人也想到了」,但是當人覺得自己「想到好點子」的時候,通常會有點熱情的衝動,以至於很容易忽略了三個層次裡的某些環節。當然,潑人冷水也是要有點技巧的,不過那不是這裡要討論的事情了。
雖然這裡說的是行動應用,但是回頭想想,其實在提供一些 predictive modeling 方面的諮詢時,常常也會遇到類似的情況。常常有人會想要用 visual recognition 來解決一個簡單的 regression 問題,或是想要用最「新」最「炫」的工具,期待能為原來遇到瓶頸的問題帶來一些新的突破。這些事情雖然都是可執行的,但是我總是要問清楚:「你想這樣做的目的是什麼?你確定這樣做有達成你的目標?」
問對問題,就好像戰略上要弄清楚「為何而戰」,後面的技術與架構,也才能發揮他們的價值。
2012/12/21
2012/12/11
設計思考與演化算法
How Design Thinking works, or: Design Thinking Unpacked: an evolutionary algorithm? from J. M. Korhonen
Design Thinking 是這幾年頗為熱門的一套創新方法學,史丹佛大學今年秋季甚至還開設了教導如何利用這套方法從事創新、為期一年的學程。究竟這個方法是什麼呢?根據「設計思考改變世界」這本書的說法:
設計思考源自於設計師們花費數十年時間孜孜學習的技能,他們在種種現實條件的束縛下,努力用可以取得的科技資源來滿足人類的需求。設計師從人的觀點出發,把人們渴望的東西與技術上可行和經濟上實惠的條件整合起來,藉此創造出我們今日所享用的產品。設計思考則更進一步,把這些工具交到那些從沒以設計師自居的人們手上,讓這些工具應用到更廣泛、更重要的問題領域。下面這段影片有更詳細的敘述。
「設計思考」與 「以使用者為中心的設計」(user-centered design, UCD )有著千絲萬縷的關聯,前者比較接近一套完整的專案執行流程,而後者比較像是設計的理念,以及相關的方法與工具的集合。由於近年來「使用者體驗」(user experience, UE or UX)逐漸成為產品與服務設計的重要指標,相關的方法與流程也顯得日益重要。
雖然說「設計思考」是由設計師所提出,其實對於學理工的人來說,它的核心概念跟傳統的「科學方法」並無二致,但是由於強調「跨領域團隊」與「產生實際產品與服務設計」,而多了許多實務上的方法與建議,因此在專案執行上特別有參考價值。
在實際執行上,設計思考包含了從消費者需求的研究開始,到產品設計、原型製作,檢討改進的一整套流程(詳情可參考文末的投影片),多年來也大量的應用在各種創新的專案上,然而還是有很多人會懷疑:「這套方法真的有用嗎?」
除了實際產品上眾多的證據之外,芬蘭的 Korhonen 教授也試圖提出一些理論上的解釋。「演化演算法」(evolutionary algorithms)屬於演算法上的一個分支,用在許多複雜問題的「最佳化」上相當有效率,而設計思考的流程與這類演算法的結構非常類似,都有「產生許多可能的方案」、「評估每個方案」、「選擇最適合的幾個方案加以組合」、「反覆製作原型並進行修正」這些過程,Korhonen 試圖以此論述來替設計思考背書,證明設計思考在理論上就是行得通的。筆者剛好在演化算法上有些許涉獵,其實這類演算法在學術界面臨最大的攻擊就是「實務上每次都很有用,但是理論上無法證明它一定有用」,所以 Korhonen 教授的用意雖好,但恐怕還是未竟全功。
最後附上以前演講的投影片,裡面有稍微詳細一點的介紹,以及一些相關影片的連結,包含一個實際案例,以及推廣設計思考的紀錄片。
。
Labels:
innovation,
thoughts
2012/12/02
[Data Analytics] 關於資料與分析的 31 句名言
原文:31 Essential Quotes on Analytics and Data | Web Analytics Action Hero
原文的作者摘錄了一些名句放在自己的著作裡,按照一些主題做了分類。
自己特別有感覺的,是愛因斯坦的那句:如果你無法簡單的解釋一件事情,那麼表示你對這件事情的理解不夠透徹(If you can’t explain it simply, you don’t understand it well enough)。
在專業訓練的過程中,我們會學到很多的術語跟複雜的概念,用來跟同行的人做更有效率的溝通。所以在這個階段,我們通常會用這些「裝備」把自己武裝起來,讓自己顯得「高人一等」、「連講的話都不一樣」。但是進到了另一個階段,我們一方面對專業領域有了更深一層的理解,一方面可能必須向外行人解釋這些複雜的概念,於是就有了以簡馭繁的需要。我相信愛因斯坦的這句話,應該是在描述這個進階的專業水準,畢竟必須依靠「讓別人不懂」來凸顯自己專業能力的人,可能在專業上還有很多可以進步的空間。
另外,像是「讓數字說話」這一類的有好幾句,但是個人一直不覺得數字本身能說什麼話,通常是「懂數字」的人,能讓數字說他想要說的話。這個部分有很多有趣的例子,以後再以另外的文章討論好了。
原文的作者摘錄了一些名句放在自己的著作裡,按照一些主題做了分類。
自己特別有感覺的,是愛因斯坦的那句:如果你無法簡單的解釋一件事情,那麼表示你對這件事情的理解不夠透徹(If you can’t explain it simply, you don’t understand it well enough)。
在專業訓練的過程中,我們會學到很多的術語跟複雜的概念,用來跟同行的人做更有效率的溝通。所以在這個階段,我們通常會用這些「裝備」把自己武裝起來,讓自己顯得「高人一等」、「連講的話都不一樣」。但是進到了另一個階段,我們一方面對專業領域有了更深一層的理解,一方面可能必須向外行人解釋這些複雜的概念,於是就有了以簡馭繁的需要。我相信愛因斯坦的這句話,應該是在描述這個進階的專業水準,畢竟必須依靠「讓別人不懂」來凸顯自己專業能力的人,可能在專業上還有很多可以進步的空間。
另外,像是「讓數字說話」這一類的有好幾句,但是個人一直不覺得數字本身能說什麼話,通常是「懂數字」的人,能讓數字說他想要說的話。這個部分有很多有趣的例子,以後再以另外的文章討論好了。
Why Analytics?
- What gets measured, gets managed. --Peter Drucker
- The price of light is less than the cost of darkness. -- Arthur C. Nielsen, Market Researcher/Founder of ACNielsen
- Without big data analytics, companies are blind and deaf, wandering out onto the Web like deer on a freeway. -- Geoffrey Moore, Author of Crossing the Chasm/Inside the Tornado
- Those who do not remember the past are condemned to repeat it. -- George Santayana
- War is ninety percent information. -- Napoleon Bonaparte, French Military and Political Leader
Uninformed Opinions and Theories
- A point of view can be a dangerous luxury when substituted for insight and understanding. -- Marshall McLuhan, Canadian Communications Professor
- In God we trust, all others must bring data. -- W. Edward Deming
- I never guess. It is a capital mistake to theorize before one has data. Insensibly one begins to twist facts to suit theories, instead of theories to suit facts. -- Sir Arthur Conan Doyle, Author of Sherlock Holmes stories
- He uses statistics as a drunken man uses lamp posts – for support rather than for illumination. -- Andrew Lang, Scottish Writer
- Facts do not cease to exist because they are ignored. -- Aldous Huxley
Data Matters
- Data! Data! Data! I can’t make bricks without clay! -- Sir Arthur Conan Doyle
- Not everything that can be counted counts, and not everything that counts can be counted. -- Albert Einstein, Physicist
The Process of Analysis
- If you don't know how to ask the right question, you discover nothing. -- W. Edward Deming
- A person who is gifted sees the essential point and leaves the rest as surplus. -- Thomas Carlyle, Scottish Writer
- He who would search for pearls must dive below. -- John Dryden
- Statistics are like bikinis. What they reveal is suggestive, but what they conceal is vital. -- Aaron Levenstein, Business Professor at Baruch College
- If you torture the data long enough, it will confess. -- Ronald Coase, Economist
- Errors using inadequate data are much less than those using no data at all. -- Charles Babbage
- The alchemists in their search for gold discovered many other things of greater value. -- Arthur Schopenhauer, German Philosopher
Sharing Your Data and Insights
- Once we know something, we find it hard to imagine what it was like not to know it. -- Chip Dan Heath, Authors of Made to Stick, Switch
- If you can’t explain it simply, you don’t understand it well enough. -- Albert Einstein, Physicist
- If the statistics are boring, you've got the wrong numbers. -- Edward Tufte
- The greatest value of a picture is when it forces us to notice what we never expected to see. -- John Tukey, American Mathematician
- Data are just summaries of thousands of stories – tell a few of those stories to help make the data meaningful. -- Chip Dan Heath, Authors of Made to Stick, Switch
- Numbers have an important story to tell. They rely on you to give them a clear and convinving voice. -- Stephen Few
Turn Insight into Action
- The goal is to turn data into information, and information into insight. -- Carly Fiorina, Former CEO of HP
- The value of an idea lies in the using of it. -- Thomas A. Edison, American Inventor
- An idea not coupled with action will never get any bigger than the brain cell it occupied. -- Arnold Glasow, American Businessman
- Any powerful idea is absolutely fascinating and absolutely useless until we choose to use it. -- Richard Bach
- Never confuse motion with action. -- Benjamin Franklin, American Politician/Inventor
- Opportunities multiply as they are seized. -- Sun Tzu
Labels:
data analytics
[Data Analytics] 隱馬可夫模型(Hidden Markov Model):探索看不到的世界的數學工具
Hidden Markov Model 是機器學習(Machine Learning)領域中常常用到的理論模型,從語音辨識(Speech Recognition)、手勢辨識(gesture recognition),到生物資訊學(Bioinformatics)裡的種種應用,都可以見到這個工具的身影。
既然名字裡有「馬可夫」,想當然耳的,這又是一個馬可夫模型(Markov model)的延伸。之前在介紹 n-gram 的文章裡已經提到過,馬可夫模型所描述的,是一連串事件接續發生的機率:
馬可夫鏈,用白話說,就是同類型的事件(不同的狀態)依序發生的機率,舉例來說,假設天氣有三種狀態:「晴天」、「陰天」跟「雨天」。如果昨天是雨天,那麼今天是「雨天」的機率,會跟昨天是「晴天」而今天是「雨天」的機率有所不同,這是因為我們相信天氣現象在時間上有某種連續性,前面發生的狀態會影響到後面發生的狀態,而馬可夫模型就是描述這種前後關係的數學語言。那麼,「隱馬可夫模型」,顧名思義的,約莫就是有什麼東西「隱藏」起來了。我們沿用之前天氣的例子,假設我因為腳受傷,必須住在一個房間裡,看不到外面的天氣(我知道這聽起來不太合理,但是我實在不想把自己關在禁閉室裡,所以請通融一下),但是我可以看到我隔壁房間的室友每天從事的運動:「跑步」、「健身操」或是「游泳」三者之一。
如果把室友每天從事的運動項目記錄下來,就是他「運動」這個事件的馬可夫鏈,這是我可以觀察的到的現象。然後,我又依照過去的經驗,知悉在每種天氣狀況下,他從事各項運動的機率,那麼我是不是可以透過我的觀察和知識,去推測每天的天氣?
在這個例子裡,有兩個事件的序列:一個是我觀察得到的,室友每天所從事的運動項目;另一個是我看不到的,也就是對我來說是隱藏的,外面每天的天氣。由於我知悉這兩個馬可夫鏈之間的關係,所以我便可以由其中一個馬可夫鏈的狀態,去預測另一個馬可夫鏈的狀態。而「隱馬可夫模型」,便是描述這樣的兩個序列的關係的統計模型。
簡單的說,「隱馬可夫模型」提供了一套數學的理論以及工具,讓我們可以利用「看得到的」連續現象去探究、預測另一個「看不到的」連續現象。
當然,這裡的「看不到」並不表示真的無從觀察,以前面所舉的例子來說,我在腳沒受傷的時候,還是可以到外面去觀察天氣的,只是在某個特定的條件之下,天氣對我來說被隱藏起來了。
文章的附圖,講的是柏拉圖的洞穴預言(Allegory of Cave),講的是「我們看到的世界」跟「真實的世界」的關係,或許恰好可以用來比喻一下隱馬可夫模型的作用。
我們還可以進一步用「語音辨識」當做例子,來說明 HMM 的用處。
在語言學上,我們可以把人說話發出的聲音分成各種音節(syllable),所以理論上,我們如果有一段錄音,只要能分辨每一個音節發的音是哪些母音與子音,就能夠把這個人講的話辨識成文字。
任何「理論上」可行的事情,必然伴隨著實務上的困難。
這種「音節對應」的工作看似容易,但是實際上會遇到很多「模稜兩可」的情況。以中文為例,兩個三聲的字連著念,前面的會讀成二聲,加上同音字、破聲字,同字的語音與讀音...等等,都增加了這個「分辨」過程的難度。
那麼,HMM 是怎麼跑進來的呢?試想,「語音」,是一連串的「音節」,而我們想要辨識成的文字,則是一連串的「字」;對語音辨識系統而言,語音這個「音節序列」是看得到的訊號,而系統想要做的是推測出與其相對應的,看不到的「文字序列」,所以正好是 HMM 所模擬的狀況。隱馬可夫模型在語音辨識的的應用,大抵始於1970年代晚期的 IBM 計畫(Jelinek),時至今日,我們生活中可以看到的各種語音辨識系統,例如 Apple 的 siri,Google 的 voice search,微軟前不久在北京展示的中英同步口譯,背後都是以 HMM 作為基礎技術。至於技術的細節,有興趣可以參考 MIT 的教材,這裡就不討論了。
生物資訊學(bioinformatics)是另一個大量使用到 HMM 的領域,從 DNA 序列的比對到演化歷程的推論,只要是跟基因序列有關的,幾乎都看得到 HMM 的應用。以DNA定序為例,一段採集到的DNA序列,包含了「外顯子」(exon)和「內隱子」(intron)兩種段落,兩者在細胞複製時有不同的功能,但都是由眾多的基因(gene,有A, T, C, G 四種)排列成的序列。因此,在一串看得到的基因序列中,要如何標記出哪一段是「外顯子」,哪一段又是「內隱子」,這些看不到的段落,也是 HMM 可以發揮作用之處。簡單的說,「外顯子」和「內隱子」各自包含 A,T,C,G基因的比例不同,於是我們可以利用 HMM 相關的演算法,找出哪一個基因是「外顯子」和「內隱子」的起點或終點。
現實中,股票的價格變化也是一個「序列」,這是另一個充滿經濟誘因的預測標的,想當然耳的,也有不少人把 HMM 運用在預測股價的狀態上,不過文獻就不如前述兩個領域那麼豐富了。
隱馬可夫模型當然也有它使用上的限制。例如,觀測與模擬的現象必須是「序列」(或者該說是馬可夫鏈),兩個序列之間的關係要夠明確等等,否則很容易就變成用十字螺絲起子去轉六角螺絲:或許可以運作,但是結果不盡然是原本想要的。
如果有這樣的數學工具,你會想要用來預測什麼看不到的現象呢?
Labels:
data analytics,
tech,
thoughts
訂閱:
文章 (Atom)